package modelado.datos.elementos;

import utiles.SituacionIlegal;

public class AristaImpl extends ElementoAbstracto implements Arista {
	private Elemento v1;
	private Elemento v2;
	private Integer peso;

	public AristaImpl(Elemento e1, Elemento e2, Integer p) {
		v1 = e1.getCodigo() <= e2.getCodigo() ? e1 : e2;
		v2 = e1.getCodigo() >= e2.getCodigo() ? e1 : e2;
		peso = p;
	}

	public boolean esVertice(Vertice e) {
		return e.equals(v1) || e.equals(v2);
	}

	public Elemento getElOtroVertice(Elemento e) {
		if (!esVertice(e))
			throw new SituacionIlegal(e + "  no es vertice de " + this);
		return e.equals(v1) ? v1 : v2;
	}

	public Integer getPeso() {
		return peso;
	}

	public Elemento getVertice1() {
		return v1;
	}

	public Elemento getVertice2() {
		return v2;
	}

	public String toString() {
		String s;
		s = "(" + v1 + "," + v2 + "," + peso + ")";
		return s;
	}

	public boolean esVertice(Elemento e) {
		return e.equals(v1) || e.equals(v2);
	}

}
